<?php
	namespace Admin\Controller;
	use User\Api\UserApi;

	class UserController extends AdminController{
		public function index(){
			  $nickname=I('get.nickname');
			  $map['status']=array('egt',0);
			  if(is_numeric($nickname)){ 
				  //检测变量是否为数字或数字字符串 
				  $map['uid|nickname']=array(intval($nickname),array('like','%'.$nickname.'%'),'_multi'=>true);
			  }else{
				  $map['nickname']=array('like','%'.$nickname.'%');
			  }
			  $list = $this->lists('Member',$map);
			  int_to_string($list);
			  $this->assign('_list', $list);
			  $this->meta_title = '用户信息';
			  $this->display();
		}
		/**
		* 修改昵称初始化
		* @author huajie <banhuajie@163.com>
		*/
		public function updateNickname(){
			$nickname=M('Member')->getFieldByUid(UID, 'nickname');
			$this->assign('nickname', $nickname);
			$this->meta_title = '修改昵称';
			$this->display();
		}
		/**
		 * 修改昵称提交
		 * @author huajie <banhuajie@163.com>
		 */
		public function submitNickname(){
			$nickname=I('post.nickname');
			$password=I('post.password');
			empty($nickname) && $this->error('请输入昵称');
			empty($password) && $this->error('请输入密码');
			$User= new UserApi();
			$uid= $User->login( UID, $password, 4);
			$uid==-2&& $this->error("密码错误");
			
			$Member=D('Member');
			$data=$Member->create(array('nickname'=>$nickname));
			if(!$data){
				$this->error($Member->getError());
			}
			$res = $Member->where(array('uid'=>$uid))->save($data);
			if($res){
				$user=session('user_auth');
				$user['username']=$data['nickname'];
				session('user_auth',$user);
				session('user_auth_sign', data_auth_sign($user));
				$this->success('修改昵称成功！');

			}
			else{
				$this->error('修改昵称失败！');
			}
		}
		 /**
		 * 修改密码初始化
		 */
		public function updatepassword(){
			$this->meta_title = '修改密码';
			$this->display();
		}
		
		/**
		 * 修改密码提交
		 */
		public function submitPassword(){
			$old=I('post.old');
			empty($old) && $this->error('请输入原密码');

			$data['password']=I('post.password');
			empty($data['password']) && $this->error('请输入新密码');

			$repassword=I('post.repassword');
			empty($repassword) && $this->error('请输入确认密码');

			if($data['password']!== $repassword){
				$this->error('您输入的新密码与确认密码不一致');
			}
			$Api= new UserApi();
			$res= $Api->updateInfo(UID, $old ,$data);
			//echo "<pre/>";print_r($res);
			if($res['status']){
				$this->error('修改密码成功！');
			}else{
				$this->error($this->showRegError($res['info']));
			}
		}
		/**
		 * 新增用户
		 */
		 public function add($username='', $password='', $repassword='',$email=''){
			 if(IS_POST){
				  /* 检测密码 */
				 if($password!=$repassword){
					 $this->error('密码和重复密码不一致！');
				 }
				 /*调用接口注册用户*/
				 $User= new UserApi;
				 $uid=$User->register($username,$password,$email);
				 if($uid>0){
					 //注册成功
					 $user=array('uid'=>$uid,'nickname'=>$username,'status'=>1);
					 if(!M('Member')->add($user)){
						 $this->error('用户添加失败！');
					 }else{
						 $this->success('用户添加成功！',U('Index'));
					 }
					 
				 }else{
					 $this->error($this->showRegError($uid));
				 }
			 }
			 $this->meta_title='新增用户';
			 $this->display();
		 }
		  /**
		 * 获取用户注册错误信息
		 * @param  integer $code 错误编码
		 * @return string        错误信息
		 */
		 private function showRegError($info){
			 switch($info){
				 case -1:  $error='用户名长度不合法，长度为1~30个字符长度';break;
				 case -2:  $error='用户名禁止注册，请更换用户名';break;
				 case -3:  $error='用户名被占用，请更换用户名';break;
				 case -4:  $error = '密码长度必须在6-30个字符之间！'; break;
				 case -5:  $error = '邮箱格式不正确！'; break;
				 case -6:  $error = '邮箱长度必须在1-32个字符之间！'; break;
				 case -7:  $error = '邮箱被禁止注册！'; break;
				 case -8:  $error = '邮箱被占用！'; break;
				 case -9:  $error = '手机格式不正确！'; break;
				 case -10: $error = '手机被禁止注册！'; break;
				 case -11: $error = '手机号被占用！'; break;
				 default:  $error = '未知错误';
			 }
			 return $error;
		 }
		 
		/**
		 * 会员状态修改
		 */
		public function changeStatus($method=''){
			$id=array_unique((array)I('id',0));
			if(in_array(C('USER_ADMINISTRATOR'),$id)){
				$this->error('不允许对超级管理员执行该操作');
			}
			$id=is_array($id) ? implode(',',$id) : $id;
			if(empty($id)){
				$this->error('请选择要操作的数据!');
			}
			$map['uid']=array('in',$id);
			
			switch(strtolower($method)){
				case 'resumeuser':
					$this->resume('Member', $map );
					break;
				case 'forbiduser':
					$this->forbid('Member',$map);
					break;
				case 'deleteuser':
					$this->delete('Member',$map);
					break;
				default: 
					$this->error('参数非法');
			}

		}
		/**
		 * 用户行为列表
		 */
		 public function action(){
			 $Action=M('Action')->where(array('status'=>array('gt',-1)));
			 $list=$this->lists($Action);
			 int_to_string($list);
			// 记录当前列表页的cookie
			Cookie('__forward__',$_SERVER['REQUEST_URI']);

			$this->assign('_list', $list);
			 $this->meta_title="用户行为";
			 $this->display();

		 }
		 /**
		 * 新增行为
		 */
		 public function addaction(){
			 $this->meta_title='新增行为';
			 $this->display('editaction');
		 }
		 /* 编辑行为
		 */
		 public function editAction(){
			 $id=I('get.id');
			 empty($id) && $this->error('参数不能为空！');
			 $this->meta_title='编辑行为';
			 $data=M('Action')->field(true)->find($id);
			 $this->assign("data",$data);
			 $this->display('editaction');
		 }
		 /* 
		 * 写入/更新行为
		 */
		 public function saveAction(){
			$Action=D('Action');
			$data=$Action->create();
			if($data){
				if($data['id']){
					$r=$Action->save();

				}else{
					$r=$Action->add();
				}
				if($r===false){
					$this->error('操作失败');
				}else{
					$this->success('操作成功',Cookie('__forward__'));
				}
			}else{
				$this->error($Action->getError());

			}

		 }
		 
	}
	

?>